package io.modifier.basic.compose.widget.privacypolicy

import android.widget.Toast
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.unit.dp
import io.modifier.basic.compose.theme.AppThemeHolder
import io.modifier.basic.compose.widget.annotatedtext.AnnotatedAction
import io.modifier.basic.compose.widget.modal.rememberModalState
import io.modifier.basic.compose.widget.weui.core.ui.components.button.WeButton

@Composable
internal fun PrivacyPolicyTest() {
    val commonState = rememberModalState()
    val customColorState = rememberModalState()
    val context = LocalContext.current
    LazyColumn(Modifier.padding(10.dp), verticalArrangement = Arrangement.spacedBy(10.dp)) {
        item {

            WeButton(
                text = "基础用法",
                onClick = {
                    commonState.show()
                }
            )


            PrivacyPolicy(
                state = commonState,
                text = "用户协议及隐私政策概要",
                secondaryText = "欢迎使用虎牙直播！我们将通过《服务协议》和《隐私政策》帮助您了解我们所提供的服务以及我们收集和处理您个人信息的情况，并告知您所享有的相关权利。\n" +
                        "为向您提供更加安全、便捷、个性化的服务，虎牙直播会在您使用相关功能时申请有关设备权限，您可通过\"系统权限设置\"查阅并选择是否授权我们收集这些信息。 \n" +
                        "您也可以通过\"设置\"-\"隐私设置\"来管理个性化推荐、个性化广告内容。 \n" +
                        "请您无比在使用本软件前仔细阅读上述法律文件，若您同意，请点击\"同意\"后开始使用我们的服务。",
                annotatedAction = listOf(
                    AnnotatedAction("服务协议") { tag ->
                        Toast.makeText(context, "点击了:${tag}", Toast.LENGTH_SHORT).show()
                    },
                    AnnotatedAction("隐私政策") { tag ->
                        Toast.makeText(context, "点击了:${tag}", Toast.LENGTH_SHORT).show()
                    },
                    AnnotatedAction("设备权限") { tag ->
                        Toast.makeText(context, "点击了:${tag}", Toast.LENGTH_SHORT).show()
                    }
                ),
                onCancelClick = {
                    Toast.makeText(context, "点击了不同意", Toast.LENGTH_SHORT).show()
                    commonState.hide()
                },
                onOkClick = {
                    Toast.makeText(context, "点击了同意", Toast.LENGTH_SHORT).show()
                    commonState.hide()
                },
            )
        }

        item {

            WeButton("自定义颜色") {
                customColorState.show()
            }

            PrivacyPolicy(
                state = customColorState,
                text = "用户协议及隐私政策概要",
                secondaryText = "欢迎使用虎牙直播！我们将通过《服务协议》和《隐私政策》帮助您了解我们所提供的服务以及我们收集和处理您个人信息的情况，并告知您所享有的相关权利。\n" +
                        "为向您提供更加安全、便捷、个性化的服务，虎牙直播会在您使用相关功能时申请有关设备权限，您可通过\"系统权限设置\"查阅并选择是否授权我们收集这些信息。 \n" +
                        "您也可以通过\"设置\"-\"隐私设置\"来管理个性化推荐、个性化广告内容。 \n" +
                        "请您无比在使用本软件前仔细阅读上述法律文件，若您同意，请点击\"同意\"后开始使用我们的服务。",
                annotatedAction = listOf(
                    AnnotatedAction("服务协议") { tag ->
                        Toast.makeText(context, "点击了:${tag}", Toast.LENGTH_SHORT).show()
                    },
                    AnnotatedAction("隐私政策") { tag ->
                        Toast.makeText(context, "点击了:${tag}", Toast.LENGTH_SHORT).show()
                    },
                    AnnotatedAction("设备权限") { tag ->
                        Toast.makeText(context, "点击了:${tag}", Toast.LENGTH_SHORT).show()
                    }
                ),
                onCancelClick = {
                    Toast.makeText(context, "点击了不同意", Toast.LENGTH_SHORT).show()
                    customColorState.hide()
                },
                onOkClick = {
                    Toast.makeText(context, "点击了同意", Toast.LENGTH_SHORT).show()
                    customColorState.hide()
                },
                annotatedStyle = SpanStyle(color = AppThemeHolder.colors.appColor),
                okButtonColors = ButtonDefaults.buttonColors(containerColor = Color(0xfff1ad3b))

            )
        }
    }
}